HAL HASH IRQ handler and callbacks functions migration

This section provides information about the HAL HASH control functions migration.

HAL HASH callbacks functions

Title

HAL1

HAL2

Input complete Callback

void HAL_HASH_InCpltCallback(hash_HandleTypeDef *hhash);
void HAL_HASH_InputCpltCallback(hal_hash_handle_t *hhash);

Digest complete Callback

void HAL_HASH_DgstCpltCallback(hash_HandleTypeDef *hhash);
void HAL_HASH_DigestCpltCallback(hal_hash_handle_t *hhash);

Error Callback

void HAL_HASH_ErrorCallback(hash_HandleTypeDef *hhash);
void HAL_HASH_ErrorCallback(hal_hash_handle_t *hhash);

HAL HASH callbacks register functions

In HAL1, the function HAL_HASH_RegisterCallback is used to register various HASH callbacks through a single function with a specific callback ID. In HAL2, distinct functions are available to register each specific HASH callback.

title

HAL1

HAL2

Input complete callback

HAL_HASH_RegisterCallback(&hash_handle,
                            HAL_HASH_INPUTCPLT_CB_ID,
                            USER_HASH_InCpltCallback);
HAL_HASH_RegisterInputCpltCallback(hal_hash_handle_t *hhash,
                                   USER_HASH_InputCpltCallback);

Digest complete callback

HAL_HASH_RegisterCallback(&hash_handle,
                            HAL_HASH_DGSTCPLT_CB_ID,
                            USER_HASH_DgstCpltCallback);
HAL_HASH_RegisterDigestComputationCpltCallback(hal_hash_handle_t *hhash,
                                               USER_HASH_DigestCpltCallback);

Error callback

HAL_HASH_RegisterCallback(&hash_handle,
                          HAL_HASH_ERROR_CB_ID,
                          USER_HASH_ErrorCallback);
HAL_HASH_RegisterErrorCpltCallback(&hash_handle,
                                   USER_HASH_ErrorCallback);

HAL HASH callbacks unregister functions

In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL HASH weak callbacks if needed.

title

HAL1

HAL2

Input complete callback

HAL_HASH_UnRegisterCallback(&hash_handle,
                              HAL_HASH_INPUTCPLT_CB_ID);
HAL_HASH_RegisterInputCpltCallback(hal_hash_handle_t *hhash,
                                   HAL_HASH_InputCpltCallback);

Digest complete callback

HAL_HASH_UnRegisterCallback(&hash_handle,
                             HAL_HASH_DGSTCPLT_CB_ID);
HAL_HASH_RegisterDigestComputationCpltCallback(hal_hash_handle_t *hhash,
                                               HAL_HASH_DigestCpltCallback);

Error callback

HAL_HASH_UnRegisterCallback(&hash_handle,
                            HAL_HASH_ERROR_CB_ID);
HAL_HASH_RegisterErrorCpltCallback(hal_hash_handle_t *hhash,
                                   HAL_HASH_ErrorCallback);

Related concept: Individual callback registration APIs replace global register and unregister functions


HAL HASH IRQ handlers

The function HAL_HASH_IRQHandler() remain unchanged.

HAL1

HAL2

HAL_HASH_IRQHandler(hash_HandleTypeDef *hhash);
HAL_HASH_IRQHandler(hal_hash_handle_t *hhash);